package com.example.jee_springboot.jpa.spec;

import com.example.jee_springboot.jpa.entity.Stu2;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.util.StringUtils;

import javax.persistence.criteria.Predicate;
import java.util.ArrayList;
import java.util.List;

public class Stu2Specs {
    public static Specification<Stu2> search(Stu2 stu2){
        return (root, query, cb) -> {
            List<Predicate> predicates=new ArrayList<>();
            if(StringUtils.hasText(stu2.getUsername())){
                predicates.add(cb.like(root.get("username"),"%"+stu2.getUsername()+"%"));
            }
            if(stu2.getJava()>0){
                predicates.add(cb.ge(root.get("java"),stu2.getJava()));
            }
            if(stu2.getMath()>0){
                predicates.add(cb.le(root.get("math"),stu2.getMath()));
            }
//            if(StringUtils.hasText(stu2.getUsername())){
//                predicates.add(cb.like(root.get(Stu2_.USERNAME),"%"+stu2.getUsername()+"%"));
//            }
//            if(stu2.getJava()>0){
//                predicates.add(cb.ge(root.get(Stu2_.JAVA),stu2.getJava()));
//            }
//            if(stu2.getMath()>0){
//                predicates.add(cb.le(root.get(Stu2_.MATH),stu2.getMath()));
//            }
            return cb.and(predicates.toArray(Predicate[]::new));
        };
    }
}
